<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Movimiento_lst( $this );

	class Movimiento_lst extends Lst
	{
	function Movimiento_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			$this->aShowColumns = array_keys ( $this->aColumns );
			if ( array_key_exists( 'ncOrden' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Orden',$this->aShowColumns)]);
			if ( array_key_exists( 'ncProducto' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Producto',$this->aShowColumns)]);
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Movimiento_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			
			$this->setTitle ( "Movimientos" );
			$this->setSummary( "Esta tabla contiene los Movimientos de los productos" );
			$this->addColumn ( 'Orden', '', true );
			$this->addColumn ( 'Producto', '', true );
			$this->addColumn ( 'Cantidad', 'nqProducto', true );
			$this->addColumn ( 'Confirmado', '' );
			$this->oPaging->setNoPaging();
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'Orden':
				$cDetClass = $aRow['ncTipoOrden'] == 1 ? "ingreso_det" : ($aRow['ncTipoOrden'] == 2 ? "egreso_det": "ajuste_det" );
				$oDet = $this->oModule->loadClass($cDetClass);
				$cReturn = $oDet->getDescription( $aRow['ncOrden']);
				break;
			case 'Producto':
				$cSql  = "SELECT cdIdioma FROM gtProductoIdioma as PId JOIN acIdioma as Idi ON Idi.ncIdioma = PId.ncIdioma WHERE ncProducto = " . $aRow['ncProducto'];
				$cIdiomas = implode( ", " , $this->oDatabase->getArray( $cSql )  );
				$cReturn = $aRow['cdProducto'] . " (". $cIdiomas . ") ";
				break;
			case 'Confirmado':
				$cReturn = $aRow['bConfirmado'] ? 'Si':'No'  ;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT MPr.ncMovimiento, MPr.ncProducto, MPr.ncTipoOrden, MPr.ncOrden, MPr.nqProducto, Pro.cdProducto, MPr.bConfirmado
								FROM gtMovimientoProducto as MPr
								LEFT JOIN gtProducto as Pro
									ON Pro.ncProducto = MPr.ncProducto";
			// Arma el Filtro de la Consulta
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('MPr') );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_MOVIMIENTO, $cParametroRegistro, 'I' );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncMovimiento=" . $aRow["ncMovimiento"] ;
			//$this->addRowAction ( MODIFICAR_UN_MOVIMIENTO_DE_UN_PRODUCTO, $cParametroRegistro);
			$this->addRowAction ( ELIMINAR_UN_MOVIMIENTO_DE_UN_PRODUCTO, $cParametroRegistro);
		}
	}
?>
